/**
 * 页面跳转工具函数
 * @author Wu.Liang
 * @date 2025-01-30
 */

// tabBar 页面列表
const TAB_BAR_PAGES = [
  '/pages/index/index',
  '/pages/services/services',
  '/pages/profile/index'
]

/**
 * 智能页面跳转
 * @param {string} url 页面路径
 * @param {object} options 跳转选项
 */
export function smartNavigate(url, options = {}) {
  if (!url) {
    uni.showToast({
      title: '页面路径不能为空',
      icon: 'none'
    })
    return
  }

  // 检查是否是 tabBar 页面
  if (TAB_BAR_PAGES.includes(url)) {
    // 使用 switchTab 跳转到 tabBar 页面
    uni.switchTab({
      url,
      ...options,
      fail: (err) => {
        console.error('tabBar页面跳转失败:', err)
        uni.showToast({
          title: '页面跳转失败',
          icon: 'none'
        })
      }
    })
  } else {
    // 使用 navigateTo 跳转到普通页面
    uni.navigateTo({
      url,
      ...options,
      fail: (err) => {
        console.error('页面跳转失败:', err)
        uni.showToast({
          title: '功能开发中',
          icon: 'none'
        })
      }
    })
  }
}

/**
 * 检查是否是 tabBar 页面
 * @param {string} url 页面路径
 * @returns {boolean}
 */
export function isTabBarPage(url) {
  return TAB_BAR_PAGES.includes(url)
}

/**
 * 获取 tabBar 页面列表
 * @returns {string[]}
 */
export function getTabBarPages() {
  return [...TAB_BAR_PAGES]
}
